import Vue from 'vue';
//金额千位，分割
let numFormat = (num) => {
  var decimal = String(num).split('.')[1] || ''; //小数部分
  var tempArr = [];
  var revNumArr = String(num).split('.')[0].split('').reverse(); //倒序
  for (var i in revNumArr) {
    tempArr.push(revNumArr[i]);
    if ((i + 1) % 3 === 0 && i != revNumArr.length - 1) {
      tempArr.push(',');
    }
  }
  var zs = tempArr.reverse().join(''); //整数部分
  return decimal ? zs + '.' + decimal : zs;
};

//截取危险等级
let zhiF = (str) => {
  return str.slice(0, 4);
};

// 判断日期是否为1970-01-01 或 0000-00-00
let dateJudge = (str) => {
  if (!str) {
    return '-';
  }
  if (str === '1970-01-01 00:00:00' || str === '0000-00-00 00:00:00' || str === '1970-01-01' || str === '0000-00-00' || str === '1970-01-01 08:00:00') {
    return '-';
  } else {
    return str;
  }
};

// 金额的格式化
function priceInterval(s, n) {
  let result = fmoney(s, n);
  return result;
}
// 金额的判断 大于0格式化 小于0或无 -
let priceJudge = (str) => {
  let price = priceInterval(str);
  if (!str) {
    return '-';
  }
  if (parseFloat(str) !== 0) {
    return price;
  } else {
    return '-';
  }
};

// 金额格式化 大于0格式化 其余返回原数值
let priceFormat = (str) => {
  let price = priceInterval(str);
  if (!price && price !== 0) {
    price = '-';
  }
  return price;
};

// 数量格式化
function numInterval(num) {
  let isNum = parseFloat(num);
  if (!isNaN(isNum) && (isNum || isNum === 0)) {
    let s = num.toString();

    //拷贝一份 返回去掉零的新串
    let newstr = s;
    //循环变量 小数部分长度
    let leng = s.length - s.indexOf('.') - 1;
    //判断是否有效数
    if (s.indexOf('.') > -1) {
      //循环小数部分
      for (let i = leng; i > 0; i--) {
        //如果newstr末尾有0
        if (newstr.lastIndexOf('0') > -1 && newstr.substr(newstr.length - 1, 1) == 0) {
          let k = newstr.lastIndexOf('0');
          //如果小数点后只有一个0 去掉小数点
          if (newstr.charAt(k - 1) == '.') {
            return newstr.substring(0, k - 1);
          } else {
            //否则 去掉一个0
            newstr = newstr.substring(0, k);
          }
        } else {
          //如果末尾没有0
          return newstr;
        }
      }
    } else {
      return num;
    }
  } else {
    return num;
  }
}
// 数量的判断 有返回格式化 无返回-
let numJudge = (str) => {
  if (!str) {
    return '-';
  }
  let num = numInterval(str);
  if (parseFloat(num) !== 0) {
    return num;
  } else {
    return '-';
  }
};
// 数量的判断 有返回格式化 无返回原数据
let numsFormat = (str) => {
  if (!str) {
    return '0';
  }

  let num = numInterval(str);
  return num;
};

// 百分比判断
let pctJudge = (str) => {
  if (!str || str === '0.00%') {
    return '-';
  }
  return str;
};

// 金额的间隔
function fmoney(s, n) {
  /*
   * 参数说明：
   * s：要格式化的数字
   * n：保留几位小数
   * */
  if (!isNaN(s) && s) {
    // 	// n = n > 0 && n <= 20 ? n : 2;
    // 	// s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
    // 	// let l = s.split(".")[0].split("").reverse(),
    // 	// 	r = s.split(".")[1];
    // 	// let t = "";
    // 	// for (let i = 0; i < l.length; i++) {
    // 	// 	t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
    // 	// }
    // 	// return t.split("").reverse().join("") + "." + r;
    n = n > 0 && n <= 20 ? n : 2;
    s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + '';
    var l = s.split('.')[0].split('').reverse();
    let r = s.split('.')[1];
    let t = '';
    if (s < 0) {
      l = (Math.abs(s.split('.')[0]) + '').split('').reverse();
    }
    for (let i = 0; i < l.length; i++) {
      t += l[i] + ((i + 1) % 3 == 0 && i + 1 != l.length ? ',' : '');
    }
    if (s < 0) {
      t += '-';
    }
    var result = t.split('').reverse().join('') + '.' + r;
    if (result == null || result == undefined || result.indexOf('NaN') >= 0 || result.indexOf('Undefined') >= 0) {
      result = '0.00';
    }
    return result;
  } else {
    return s;
  }
}

export {
  numFormat,
  zhiF,
  dateJudge,
  priceJudge,
  priceFormat,
  numJudge,
  numsFormat,
  pctJudge
};
